#ifndef __GAME_H__
#define __GAME_H__

#include "common.h"
#include "GlobalSpriteResource.h"
#include "BulletFlight.h"
#include "EnemyFlight.h"

#include "Player.h"
#include "Enemy.h"
#include "Explosion.h"

#include "Level.h"
#include "SDL/SDL_ttf.h"

using namespace std;

class Game {
public:
    Game();
    ~Game();

    int init();
    void run();
   static void reset();

    TTF_Font *font;
    static long int score;

    static void* backGround(void*);
    static void* handleInput(void*);
	static void* keyboard(void*);

    static void handleLevel();
	void handleScore();

    static void* handleBullets(void*);

    static void* handleEnemies(void*);
    static int getEmptyEnemy();

    static void* handleExplosions(void*);
    static int getEmptyExplosion();
    static void* addExplosion(int image, int x, int y);

    static void* shootbeam(int beam);

    static Player* player;

    static SDL_Surface* screen;

   static int gs;


    static bool KEYS[322];  // 322 is the number of SDLK_DOWN events

    static GlobalSpriteResource* gsr;
    static BulletFlight* bf;
    static EnemyFlight* ef;

    static Enemy enemies[MAX_ENEMIES];

    Bullet eBullets[MAX_BULLETS];

    static Explosion explosions[MAX_EXPLOSIONS];

    static Level* level;

  //  int gameSpeed;


};
#endif
